/** Default theme settings */

// 添加详细的类型定义和方法级注释
/**
 * 获取环境变量的值
 * @param {string} env - 环境变量的名称
 * @returns {string | undefined} - 返回环境变量的值
 */
function getEnvValue(env: string): string | undefined {
	const value = import.meta.env[env];
	return value;
}

/**
 * 主题设置
 * 包含应用程序的外观和行为配置
 */
export const themeSettings: App.Theme.ThemeSetting = {
	colourWeakness: false, // 是否启用色弱模式
	fixedHeaderAndTab: true, // 是否固定头部和标签
	footer: {
		fixed: false, // 是否固定页脚
		height: 48, // 页脚高度
		right: true, // 是否在水平混合布局时将页脚浮动到右侧
		visible: true // 是否显示页脚
	},
	grayscale: false, // 是否启用灰度模式
	header: {
		breadcrumb: {
			showIcon: true, // 是否显示面包屑图标
			visible: true // 是否显示面包屑
		},
		height: 56 // 头部高度
	},
	isInfoFollowPrimary: true, // 信息颜色是否跟随主色
	isOnlyExpandCurrentParentMenu: true, // 是否仅展开当前父菜单
	layout: {
		mode: 'vertical', // 布局模式
		reverseHorizontalMix: false, // 是否反转水平混合
		scrollMode: 'content' // 滚动模式
	},
	otherColor: {
		error: '#f5222d', // 错误颜色
		info: '#3CA590', // 信息颜色
		success: '#52c41a', // 成功颜色
		warning: '#faad14' // 警告颜色
	},
	page: {
		animate: true, // 是否显示页面过渡动画
		animateMode: 'fade' // 页面动画模式
	},
	recommendColor: false, // 是否推荐颜色
	sider: {
		collapsedWidth: 64, // 折叠侧边栏宽度
		inverted: false, // 是否反转侧边栏
		mixChildMenuWidth: 200, // 混合布局子菜单宽度
		mixCollapsedWidth: 64, // 混合布局折叠侧边栏宽度
		mixWidth: 90, // 混合布局侧边栏宽度
		width: 220 // 侧边栏宽度
	},
	tab: {
		cache: true, // 是否缓存标签
		height: 44, // 标签高度
		mode: 'chrome', // 标签模式
		visible: true // 是否显示标签
	},
	themeColor: '#3CA590', // 主题颜色
	tokens: {
		dark: {
			colors: {
				'base-text': 'rgb(224, 224, 224)', // 基础文本颜色
				container: 'rgb(28, 28, 28)', // 容器颜色
				layout: 'rgb(18, 18, 18)' // 布局颜色
			}
		},
		light: {
			boxShadow: {
				header: '0 1px 2px rgb(0, 21, 41, 0.08)', // 头部阴影
				sider: '2px 0 8px 0 rgb(29, 35, 41, 0.05)', // 侧边栏阴影
				tab: '0 1px 2px rgb(0, 21, 41, 0.08)' // 标签阴影
			},
			colors: {
				'base-text': 'rgb(31, 31, 31)', // 基础文本颜色
				container: 'rgb(255, 255, 255)', // 容器颜色
				inverted: 'rgb(0, 20, 40)', // 反转颜色
				layout: 'rgb(247, 250, 252)' // 布局颜色
			}
		}
	},
	watermark: {
		text: getEnvValue('VITE_APP_TITLE'), // 水印文本
		visible: false // 是否显示水印
	}
};

/**
 * 覆盖主题设置
 * 如果发布新版本，使用 `overrideThemeSettings` 覆盖某些主题设置
 */
export const overrideThemeSettings: Partial<App.Theme.ThemeSetting> = {
	watermark: {
		text: getEnvValue('VITE_APP_TITLE'),
		visible: false
	}
};

/**
 * 示例用法
 *
 * ```typescript
 * import { themeSettings } from './settings';
 *
 * // 使用主题设置配置应用程序
 * console.log(themeSettings.layout.mode);
 * ```
 */
